package muestraTecnologica;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.print.DocFlavor.STRING;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

/**
 *
 * @author David Cuellar
 */
public final class Reportes extends Frames{

    private JPanel pnlDummy, pnlStandMasVotado, pnlVotosxPrograma, pnlTotalParticipantes;
    private JButton btnMasVotado, btnXProgramas, btnTotal;
    private JLabel titulo, total;
    private JTable tblReportes;
    private TablaReportesModel tableModel;
    private String[] columnNames;
    private JScrollPane scrollPane;
    private String[][] datos;
    private ArrayList<JPanel> paneles;

    
    public Reportes() {
        
        setTitle("Reportes");
        setSize(800, 700);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        
        initButtons();
        
        pnlDummy = new JPanel(null);
        pnlDummy.setBounds(20, 70, 670, 300);
        pnlDummy.setBackground(Color.lightGray);
          
        pnlStandMasVotado = new JPanel(null);
        pnlStandMasVotado.setBounds(20, 70, 670, 300);
        pnlStandMasVotado.setBackground(new Color(230, 230, 230));
        
        pnlVotosxPrograma = new JPanel(null);
        pnlVotosxPrograma.setBounds(20, 70, 670, 300);
        pnlVotosxPrograma.setBackground(new Color(230, 230, 230));
        
        pnlTotalParticipantes = new JPanel(null);
        pnlTotalParticipantes.setBounds(20, 70, 670, 300);
        pnlTotalParticipantes.setBackground(new Color(230, 230, 230));
        
        
        
        pnlCenter.setBounds(30, 220, 730, 500);
        
        paneles = new ArrayList<JPanel>();
        paneles.add(pnlStandMasVotado);
        paneles.add(pnlVotosxPrograma);
        paneles.add(pnlTotalParticipantes);
        
        pnlCenter.add(btnMasVotado);
        pnlCenter.add(btnXProgramas);
        pnlCenter.add(btnTotal);
        pnlCenter.add(pnlDummy);
        
            
        
        btnMasVotado.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                initStandMasVotado();
                changePanel(1);
            }
        });
        
        btnXProgramas.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                initVotacionxPrograma();
                changePanel(2);
            }
        });
        
        btnTotal.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                initTotalParticipantes();
                changePanel(3);
            }
        });
        
        
        
    }
    
    /* Panel Stand mas Votado */
    public void initStandMasVotado(){
        
        titulo = new JLabel("Top 5");
        titulo.setBounds(300 , 20, 100, 30);
        titulo.setFont(fuente);
        
        columnNames = new String[3];
        columnNames[0] = "Nombre Stand";
        columnNames[1] = "Responsable";
        columnNames[2] = "Total Votos";
            
        
        bd.conectar();
        tblReportes = new JTable(bd.top5(), columnNames);
        bd.cerrarConexion();
        tblReportes.setBounds(20, 20, 500, 100);
        tblReportes.setFillsViewportHeight(true);
        
        
        scrollPane = new JScrollPane(tblReportes);
        scrollPane.setBounds(40, 60, 600, 110);
        
        pnlStandMasVotado.add(titulo);
        pnlStandMasVotado.add(scrollPane);
        
        
    }
    
    /* Panel Votacion por Programa */
    public void initVotacionxPrograma(){
        
        
        titulo = new JLabel("Votacion x Programa");
        titulo.setBounds(200 , 20, 200, 30);
        titulo.setFont(fuente);
        
        columnNames = new String[2];
        columnNames[0] = "Nombre Programa";
        columnNames[1] = "Total Participantes";
        
        bd.conectar();
        tblReportes = new JTable(bd.votosXPrograma(), columnNames);
        bd.cerrarConexion();
        tblReportes.setBounds(20, 20, 500, 100);
        tblReportes.setFillsViewportHeight(true);
        
        scrollPane = new JScrollPane(tblReportes);
        scrollPane.setBounds(40, 60, 600, 200);
        
        pnlVotosxPrograma.add(titulo);
        pnlVotosxPrograma.add(scrollPane);
    }
    
    public void initTotalParticipantes(){
        
        titulo = new JLabel("Total Participantes de la Muestra");
        titulo.setBounds(200 , 20, 350, 30);
        titulo.setFont(fuente);
        
        bd.conectar();
        total = new JLabel(bd.totalParticipantes());
        total.setFont(fuente3);
        total.setBounds(330 , 80, 100, 50);
        bd.cerrarConexion();
        
        
        pnlTotalParticipantes.add(titulo);
        pnlTotalParticipantes.add(total);
        
    }
    
    public void initButtons(){
        
        btnMasVotado = new JButton("Stands Mas Votados");
        btnMasVotado.setBounds(30, 20, 200, 30);
        btnXProgramas = new JButton("Participantes x Programa");
        btnXProgramas.setBounds(260, 20, 200, 30);
        btnTotal = new JButton("Total Participantes");
        btnTotal.setBounds(490, 20, 200, 30);
        
    }
        
    public void changePanel(int val){
        
        if(val == 1){
            pnlCenter.remove(3);
            pnlCenter.add(paneles.get(0));
            revalidate();
            repaint();
        }
        if(val == 2){
            pnlCenter.remove(3);
            pnlCenter.add(paneles.get(1));
            revalidate();
            repaint();
        }
        if(val == 3){
            pnlCenter.remove(3);
            pnlCenter.add(paneles.get(2));
            revalidate();
            repaint();
        }
        
    }
}
